<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // null和undefined的区别，以及应用

        /*
            null表示"没有对象"，该处就不应该有值
            undefined表示缺少值，该处应该有值，但是还没有定义
            如果转为数值，null会被转换为0，但是undefined会被转换为NaN
        */

        /*
            1. 什么时候会出现null？
                作为函数的参数，表示该函数的参数不是对象
                作为对象原型链的终点
            2. 什么时候会出现undefined?
                变量被声明了但是没有赋值，就等于undefined
                调用函数的时候，应该提供的参数没有提供，该参数等于undefined
                对象没有赋值的属性，该属性的值就为undefined
                函数没有返回值的时候，默认返回undefined
        */
        var a;
        function b(param) {
            console.log(param);
        };
        var c = {};
        var d = function () {

        }
        console.log(a, c.name, d());
        b();
    </script>
</body>

</html>